package methodref02;

import org.junit.Test;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;

/**
 * 静态方法引用
 *   类名::静态方法名
 *   Arrays,Collections
 *   Arrays类中
 *   static String toString(int[] a)
 *           返回指定数组内容的字符串表示形式。
 *   Collections类:
 *  public static <T extends Comparable<? super T>> void sort(List<T> list)
 *            根据元素的自然顺序 对指定列表按升序进行排序。
 */
public class MethodRefDemo03 {
    @Test
    public void test01(){
        int[] arr = {3,7,9};
        // Function<int[],String> f = array -> Arrays.toString(array);

        // 改造后
        Function<int[],String> f = Arrays::toString;
        System.out.println(f.apply(arr));  // [3, 7, 9]
    }

    @Test
    public void test02(){
        List<Integer> integers = Arrays.asList(1, 3, 7, 5, 12, 33);
        //Consumer<List<Integer>> c = list-> Collections.sort(list);
        Consumer<List<Integer>> c = Collections::sort;

        c.accept(integers);
        System.out.println(integers);  // [1, 3, 5, 7, 12, 33]

    }
}
